package com.baidu.service;

import com.baidu.model.entity.PhotoModelWithBLOBs;
import com.until.pagination.PaginationRequest;
import com.until.response.RestfulCode;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.OutputStream;

/**
 * @author user
 */
@Mapper
public interface InPhotoControllerService {
    /**
     * 上传图片的controller 接口类
     * @param orders 数据权限
     * @param albumId 相册的id
     * @param name 图片的名称
     * @param file 图片数据
     * @param photoModel 传输的新建的对象
     * @return 返回响应的信息
     */
    RestfulCode.CodeSatCode phoneUpLoad(Integer orders, Integer albumId, String name, MultipartFile file, PhotoModelWithBLOBs photoModel) throws Exception;

    /**
     * 图片信息显示的 controller 接口类
     * @param id 展示数据的id
     * @param output 输出流对象
     */
    void getPhotoBilbo(Integer id, OutputStream output) throws Exception;

    /**
     * 图片的基础信息显示的 controller 接口类
     * @param id 展示数据的id
     * @param request request请求
     * @return 返回响应结果
     */
    RestfulCode.CodeSatCode getPhotoBilboInfo(Integer id, HttpServletRequest request) throws Exception;

    /**
     * 得到相册中的图片列表信息
     * @param id 展示的相册id
     * @param orders 权限信息
     * @param request request请求
     * @param page
     * @return 响应信息结果
     */
    RestfulCode.CodeSatCode getPhotoBilboInfoByAlbumId(Integer id, Integer orders, HttpServletRequest request, PaginationRequest page);

    /**
     * 删除指定id的照片信息记录
     * @param id 要删除的id
     * @return 返回响应信息
     */
    RestfulCode.CodeSatCode deletePhotoById(Integer id);
}
